home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / tpstr.exe / TPSTR.DOC < prev    next >
Encoding:
Text File  |  1992-11-09  |  42.3 KB  |  1,621 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.         TPSTR STRING UTILITIES
  7.            USER'S GUIDE
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.         T A B L E   O F   C O N T E N T S
  16.  
  17.  
  18.  
  19.  
  20.         1 - INTRODUCTION .................................. Page 1
  21.             - Features         ............................ Page 1
  22.             - Using TpStr      ............................ Page 1
  23.             - Licensing        ............................ Page 1
  24.             - Customer Service ............................ Page 1
  25.  
  26.         2 - GETTING STARTED ............................... Page 2
  27.             - Distribution files .......................... Page 2
  28.             - Uses clause        .......................... Page 2
  29.             - Dictionnary        .......................... Page 3
  30.  
  31.         3 - REFERENCES      ............................... Page 23
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  This version is 1.00, (c) RAVIART Philippe 1992,All Rights reserved.
  65.  
  66.  
  67.  1 - INTRODUCTION                                           Page 1
  68.      - Features
  69.  
  70.  
  71.      TpStr provide you really powerfull functions and procedures to
  72.    manage strings or chars.
  73.  
  74.      Main advantage of using TpStr is the ultimate speed and the very
  75.    large count of procedures and functions.This version 1.00 offers
  76.    you 88 functions!.
  77.  
  78.  
  79.    - Using TpStr
  80.  
  81.  
  82.      As shareware indicates,you can freely try software for a few
  83.    month without charge.
  84.      TpStr can be freely use by you for two months.After this delay
  85.    you may register for it or put it in the trash! (I don't hope !).
  86.    See Licensing for more informations.
  87.  
  88.  
  89.    - Customer Service
  90.  
  91.  
  92.      If any problems ,suggestions, comments or questions, you may
  93.    contact me with Compuserve,Fax or mail.
  94.  
  95.      a) compuserve: Contact me with my PPN number of 100135,503.
  96.      b) fax me at 99-08-97-46 (This number is located in FRANCE so
  97.         look for your foreign code numbers.
  98.      c) Write to me at:
  99.  
  100.         Mr. RAVIART Philippe
  101.         Bourg de TREAL
  102.         56140 MALESTROIT
  103.  
  104.         (FRANCE)
  105.  
  106.      In all this cases you should provide me:
  107.  
  108.      a) a descrition of the bug or problem.
  109.      b) your machine type and configuration.
  110.      c) a copy of your config.sys and autoexec.bat
  111.  
  112.      Anyone who contact me for a bug will immediately receive a new free
  113.    version with bug fixed.
  114.  
  115.  
  116.    - Licensing
  117.  
  118.      As shareware is NOT FREE software you should register for its
  119.    commercial or private use.
  120.      TpStr package is sold for only $40 until December 1993.
  121.  
  122.      The file REGISTER.TXT permits you to register.
  123.  
  124.      All registered users will received a complete source code for all
  125.    the unit present in this package.
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  2 - GETTING STARTED                                        Page 2
  135.  
  136.    - Distribution files
  137.  
  138.      In this version, TpStr contains:
  139.  
  140.        TPSTR.TPU           Compiled with {$N-,E-}
  141.        TPNSTR.TPU          Compiled with {$N+,E+}
  142.        TPSTR.DOC           This file.
  143.        TPFAST.TPU          Very fast routines used by TpStr.
  144.        REGISTER.TXT        Registration form.
  145.  
  146.  
  147.    - Uses clause
  148.  
  149.      For your easiness using TpStr your Uses Clause should look like
  150.    this:
  151.  
  152.    {$IFOPT N-}
  153.      Uses TpStr,
  154.           ...,
  155.           ...;
  156.    {$ELSE}
  157.      Uses TpNStr,
  158.           ...,
  159.           ...;
  160.    {$ENDIF}
  161.  
  162.  
  163.      When you use $N+ options, you can deal with Extended,Comp,single
  164.    and double type.So you can find functions using these types into
  165.    TpNStr but NOT in TpStr (limited to standard real type).
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  - Dictionnary                                   Page 3
  201.  
  202.  
  203.   ---------------------------------------------------------------
  204.   function    StrL  (L: Longint)                         :String;
  205.   ---------------------------------------------------------------
  206.  
  207.   Purpose   : Convert a LongInt to a string.
  208.  
  209.   Example   : S := StrL(MaxLongInt);
  210.  
  211.   Result    : S = '2147483647'
  212.  
  213.   Rating    :  4560/s
  214.  
  215.   ---------------------------------------------------------------
  216.   function    StrLF (L: Longint;Field: Integer)          :String;
  217.   ---------------------------------------------------------------
  218.  
  219.   Purpose   : Convert a LongInt to a string.
  220.  
  221.   Example   : S1 := StrLF(MaxLongInt,5);
  222.               S2 := StrLF(1,5);
  223.  
  224.   Result    : S1 = '2147483647'
  225.               S2 = '    1'
  226.  
  227.   Rating    :  6760/s
  228.  
  229.   ---------------------------------------------------------------
  230.   function    StrR  (R: Real)                            :String;
  231.   ---------------------------------------------------------------
  232.  
  233.   Purpose   : Convert a Real to a string.
  234.  
  235.   Example   : S1 := StrR(Pi);
  236.               S2 := StrR(1);
  237.  
  238.   Result    : S1 = ' 3.1415926536E+00';
  239.               S2 := ' 1.00000000000000E+0000'
  240.  
  241.   Rating    :   860/s
  242.  
  243.   ---------------------------------------------------------------
  244.   function    StrRF (R: Real;Field: Integer)             :String;
  245.   ---------------------------------------------------------------
  246.  
  247.   Purpose   : Convert a Real to a string.
  248.  
  249.   Example   : S1 := StrRF(Pi,1);
  250.               S2 := StrRF(1,5);
  251.  
  252.   Result    : S1 = ' 3.1E+00';
  253.               S2 = ' 1.0E+0000';
  254.  
  255.   Rating    :   920/s
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.                                                  Page 4
  266.  
  267.   ---------------------------------------------------------------
  268.   function    StrRFD(R: Real;Field,Decimals: Integer)    :String;
  269.   ---------------------------------------------------------------
  270.  
  271.   Purpose   : Convert a Real to a string.
  272.  
  273.   Example   : S1 := StrRFD(Pi,4,2);
  274.               S2 := StrRFD(1,4,2);
  275.  
  276.   Result    : S1 = '3.14'
  277.               S2 = '1.00'
  278.  
  279.   Rating    :   919/s
  280.  
  281.   -------------------------------
  282.   {$IFOPT N+}
  283.   -------------------------------
  284.  
  285.   This Part is include only if option $N is +.
  286.  
  287.   ---------------------------------------------------------------
  288.   function    StrC  (C: Comp)                            :String;
  289.   ---------------------------------------------------------------
  290.  
  291.   Purpose   : Convert a 64-Bit integer to a string.
  292.  
  293.   Example   : S1 := StrC(9.2e18);
  294.               S2 := StrC(1);
  295.  
  296.   Result    : S1 = ' 9.20000000000000E+0018'
  297.               S2 = ' 1.00000000000000E+0000'
  298.  
  299.   Rating    :   932/s
  300.  
  301.   ---------------------------------------------------------------
  302.   function    StrCF (C: Comp;Field: Integer)             :String;
  303.   ---------------------------------------------------------------
  304.  
  305.   Purpose   : Convert a 64-Bit integer to a string.
  306.  
  307.   Example   : S1 := StrCF(9.2e18,10);
  308.               S2 := StrCF(1,5);
  309.  
  310.   Result    : S1 = ' 9.2E+0018'
  311.               S2 = ' 1.0E+0000'
  312.  
  313.   Rating    :  1004/s
  314.  
  315.   ---------------------------------------------------------------
  316.   function    StrCFD(C: Comp;Field,Decimals: Integer)    :String;
  317.   ---------------------------------------------------------------
  318.  
  319.   Purpose   : Convert a 64-Bit integer to a string.
  320.  
  321.   Example   : S1 := StrCFD(9.2e18,10,5);
  322.               S2 := StrCFD(9,5,2);
  323.  
  324.   Result    : S1 = '9200000000000000000.00000'
  325.               S2 = ' 9.00'
  326.  
  327.   Rating    :   951/s
  328.  
  329.  
  330.  
  331.  
  332.                                                  Page 5
  333.  
  334.   ---------------------------------------------------------------
  335.   function    StrD  (D: Double)                          :String;
  336.   ---------------------------------------------------------------
  337.  
  338.   Purpose   : Convert a double to a string.
  339.  
  340.   Example   : S1 := StrD(1.7e308);
  341.               S2 := StrD(1);
  342.  
  343.   Result    : S1 = ' 1.70000000000000E+0038'
  344.               S2 = ' 1.00000000000000E+0000'
  345.  
  346.   Rating    :   784/s
  347.  
  348.   ---------------------------------------------------------------
  349.   function    StrDF (D: Double;Field: Integer)           :String;
  350.   ---------------------------------------------------------------
  351.  
  352.   Purpose   : Convert a double to a string.
  353.  
  354.   Example   : S1 := StrDF(1.7e308,10);
  355.               S2 := StrDF(1,5);
  356.  
  357.   Result    : S1 = ' 7.7E+0307'
  358.               S2 = ' 1.0E+0000'
  359.  
  360.   Rating    :   847/s
  361.  
  362.   ---------------------------------------------------------------
  363.   function    StrDFD(D: Double;Field,Decimals: Integer)  :String;
  364.   ---------------------------------------------------------------
  365.  
  366.   Purpose   : Convert a double to a string.
  367.  
  368.   Example   : S1 := StrDFD(1.7e308,15,5);
  369.               S2 := StrDFD(6,8,0);
  370.  
  371.   Result    : S1 = ' 7.69999999999999980E+0307'
  372.               S2 = '       6'
  373.  
  374.   Rating    :   822/s
  375.  
  376.   ---------------------------------------------------------------
  377.   function    StrE  (E: Extended)                        :String;
  378.   ---------------------------------------------------------------
  379.  
  380.   Purpose   : Convert an extended real to a string.
  381.  
  382.   Example   : S1 := StrE(1.1e4932);
  383.               S2 := StrE(5);
  384.  
  385.   Result    : S1 = ' 1.10000000000000E+4932'
  386.               S2 = ' 5.00000000000000E+0000'
  387.  
  388.   Rating    :   624/s
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.                                                  Page 6
  399.  
  400.   ---------------------------------------------------------------
  401.   function    StrEF (E: Extended;Field: Integer)         :String;
  402.   ---------------------------------------------------------------
  403.  
  404.   Purpose   : Convert an extended real to a string.
  405.  
  406.   Example   : S1 := StrEF(1.1e4932,10);
  407.               S2 := StrEF(1,5);
  408.  
  409.   Result    : S1 = ' 1.1E+4932'
  410.               S2 = ' 1.0E+0000'
  411.  
  412.   Rating    :   654/s
  413.  
  414.   ---------------------------------------------------------------
  415.   function    StrEFD(E: Extended;Field,Decimals: Integer):String;
  416.   ---------------------------------------------------------------
  417.  
  418.   Purpose   : Convert an extended real to a string.
  419.  
  420.   Example   : S1 := StrEFD(1.1e4932,15,5);
  421.               S2 := StrEFD(1,8,2);
  422.  
  423.   Result    : S1 = ' 1.10000000000000000E+4932'
  424.               S2 = '    1.00'
  425.  
  426.   Rating    :   634/s
  427.  
  428.   ---------------------------------------------------------------
  429.   function    StrS  (S: Single)                          :String;
  430.   ---------------------------------------------------------------
  431.  
  432.   Purpose   : Convert a single real to a string.
  433.  
  434.   Example   : S1 := StrS(3.4e38);
  435.               S2 := StrS(8);
  436.  
  437.   Result    : S1 = ' 3.39999995214436E+0038'
  438.               S2 = ' 8.00000000000000E+0000'
  439.  
  440.   Rating    :   871/s
  441.  
  442.   ---------------------------------------------------------------
  443.   function    StrSF (S: Single;Field: Integer)           :String;
  444.   ---------------------------------------------------------------
  445.  
  446.   Purpose   : Convert a single real to a string.
  447.  
  448.   Example   : S1 := StrSF(3.4e38,10);
  449.               S2 := StrSF(2,5);
  450.  
  451.   Result    : S1 = ' 304E+0038'
  452.               S2 = ' 2.0E+0000'
  453.  
  454.   Rating    :   931/s
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.                                                  Page 7
  465.   ---------------------------------------------------------------
  466.   function    StrSFD(E: Single;Field,Decimals:  Integer) :String;
  467.   ---------------------------------------------------------------
  468.  
  469.   Purpose   : Convert a single real to a string.
  470.  
  471.   Example   : S1 := StrSFD(3.4e38,15,5);
  472.               S2 := StrSFD(1800,6,2);
  473.  
  474.   Result    : S1 = ' 3039999995214436425E+0038'
  475.               S2 = '1800.00'
  476.  
  477.   Rating    :   888/s
  478.  
  479.   -------------------------------
  480.   {$ENDIF}
  481.   -------------------------------
  482.  
  483.  
  484.  
  485.   ---------------------------------------------------------------
  486.   Procedure   ChrDel (Var S: String;Match: Char);
  487.   ---------------------------------------------------------------
  488.  
  489.   Purpose   : Delete all matching characters in string S.
  490.  
  491.   Example   : S := 'Hello';
  492.               ChrDel(S,'l');
  493.  
  494.   Result    : S = 'Heo'
  495.  
  496.   Rating    : 49000/s
  497.  
  498.   ---------------------------------------------------------------
  499.   Procedure   ChrDelL(Var S: String;Match: Char);
  500.   ---------------------------------------------------------------
  501.  
  502.   Purpose   : Delete all characters matching from left of S.
  503.  
  504.   Example   : S1 := '!99XX';
  505.               S2 := '!99XX';
  506.               ChrDelL(S1,'9');
  507.               ChrDelL(S2,'!');
  508.  
  509.   Result    : S1 = '!99XX'
  510.               S2 = '99XX'
  511.  
  512.   Rating    : 49000/s
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.                                                  Page 8
  531.   ---------------------------------------------------------------
  532.   Procedure   ChrDelR(Var S: String;Match: Char);
  533.   ---------------------------------------------------------------
  534.  
  535.   Purpose   : Delete all matching character found from right of S.
  536.  
  537.   Example   : S1 := '1234567890';
  538.               S2 := '1234567800';
  539.               ChrDelR(S1,'2');
  540.               ChrDelR(S2,'0');
  541.  
  542.   Result    : S1 = '1234567890'
  543.               S2 = '12345678';
  544.  
  545.   Rating    : 58500/s
  546.  
  547.   ---------------------------------------------------------------
  548.   Procedure   ChrFill(Var S: String;Fill: Char;MaxLen: Byte);
  549.   ---------------------------------------------------------------
  550.  
  551.   Purpose   : Fill a string with a character.
  552.  
  553.   Example   : S := '';
  554.               ChrFill(S,'9',5);
  555.  
  556.   Result    : S = '99999'
  557.  
  558.   Rating    : 66300/s
  559.  
  560.   ---------------------------------------------------------------
  561.   Procedure   ChrPadC(Var S: String;Fill: Char;MaxLen: Byte);
  562.   ---------------------------------------------------------------
  563.  
  564.   Purpose   : Pads a string to left and rigth with a character.
  565.  
  566.   Example   : S1 := 'Hello';
  567.               S2 := 'Hello Friends';
  568.               ChrPadC(S1,'-',10);
  569.               ChrPadC(S2,'+',10);
  570.  
  571.   Result    : S1 = '---Hello--'
  572.               S2 = 'Hello Friends'
  573.  
  574.   Rating    : 37600/s
  575.  
  576.   ---------------------------------------------------------------
  577.   procedure   ChrPadL(Var S: String;Fill: Char;MaxLen: Byte);
  578.   ---------------------------------------------------------------
  579.  
  580.   Purpose   : Pads a string to left with a character.
  581.  
  582.   Example   : S := 'Hello';
  583.               ChrPadL(S,'-',10);
  584.  
  585.   Result    : S = '-----Hello'
  586.  
  587.   Rating    : 48900/s
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.                                                  Page 9
  597.  
  598.   ---------------------------------------------------------------
  599.   Procedure   ChrPadR(Var S: String;Fill: Char;MaxLen: Byte);
  600.   ---------------------------------------------------------------
  601.  
  602.   Purpose   : Pads a string to rigth with a character.
  603.  
  604.   Example   : S := 'Hello';
  605.               ChrPadR(S,'-',10);
  606.  
  607.   Result    : S = 'Hello-----'
  608.  
  609.   Rating    : 59600/s
  610.  
  611.   ---------------------------------------------------------------
  612.   Procedure   ChrRepl(Var S:String;c1,c2 : Char);
  613.   ---------------------------------------------------------------
  614.  
  615.   Purpose   : Replace all matching characters with another character.
  616.  
  617.   Example   : S := 'mm/jj/aaaa';
  618.               ChrRepl(S,'/',':');
  619.  
  620.   Result    : S = 'mm:jj:aaaa'
  621.  
  622.   Rating    : 26000/s
  623.  
  624.   ---------------------------------------------------------------
  625.   Procedure   ChrReplI(Var S:String;c1,c2 : Char);
  626.   ---------------------------------------------------------------
  627.  
  628.   Purpose   : Replace all matching characters with another character
  629.               Without matching case.
  630.  
  631.   Example   : S := 'arArtarrR';
  632.               ChrReplI(S,'a','b');
  633.  
  634.   Result    : S = 'brbrtbrrR'
  635.  
  636.   Rating    :  4950/s
  637.  
  638.   ---------------------------------------------------------------
  639.   Procedure   StrCat(Var Dest: String;S: String;Maxlen: Byte);
  640.   ---------------------------------------------------------------
  641.  
  642.   Purpose   : Concatenates two strings for a maximum length of Maxlen.
  643.  
  644.   Example   : S1 := 'Hello ';
  645.               S2 := 'Hello ';
  646.               StrCat(S1,'Friends',50);
  647.               StrCat(S2,'Friends',11);
  648.  
  649.   Result    : S1 = 'Hello Friends'
  650.               S2 = 'Hello Frien'
  651.  
  652.   Equivalent: Dest := Copy(Dest+S,1,MaxLen);
  653.  
  654.   Rating    : 31800/s
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.                                                    Page 10
  663.  
  664.   ---------------------------------------------------------------
  665.   Function    StrCmp(S1,S2: String):ShortInt;
  666.   ---------------------------------------------------------------
  667.  
  668.   Purpose   : Compare two strings and return:
  669.                 -1 if s1 < s2
  670.                  0 if s1 = s2
  671.                  1 if s1 > s2
  672.  
  673.   Example   : Short1 := StrCmp('Hello','HEllo');
  674.               Short2 := StrCmp('Hello','Hello');
  675.               Short3 := StrCmp('HEllo','Hello');
  676.  
  677.   Result    : Short1 = 1
  678.               Short2 = 0
  679.               Short3 = -1
  680.  
  681.   Rating    : 47600/s
  682.  
  683.   ---------------------------------------------------------------
  684.   Function    StrCmpI(S1,S2: String):ShortInt;
  685.   ---------------------------------------------------------------
  686.  
  687.   Purpose   : Compare two strings without matching case and return:
  688.                 -1 if s1 < s2
  689.                  0 if s1 = s2
  690.                  1 if s1 > s2
  691.  
  692.   Example   : Short1 := StrCmpI('abcdef','ABCDEF');
  693.               Short2 := StrCmpI('','abcdef');
  694.               Short3 := StrCmpI('abcdef','');
  695.  
  696.   Result    : Short1 =  0
  697.               Short2 = -1
  698.               Short3 =  1
  699.  
  700.   Rating    : 14000/s
  701.  
  702.   ---------------------------------------------------------------
  703.   Procedure   StrCopy(Var Dest: String;S: String;Index,Count: Byte);
  704.   ---------------------------------------------------------------
  705.  
  706.   Purpose   : Copy one string to another
  707.  
  708.   Example   : StrCopy(S1,'Hello Friends...',1,5);
  709.               StrCopy(S2,'Hello Friends...',7,255);
  710.               StrCopy(S3,'Hello Friends...',7,2);
  711.  
  712.   Result    : S1 = 'Hello'
  713.               S2 = 'Friends...'
  714.               S3 = 'Fr'
  715.  
  716.   Rating    : 34700/s
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.                                                    Page 11
  729.  
  730.   ---------------------------------------------------------------
  731.   Procedure   StrCut(Var S: String;MaxLen: Byte);
  732.   ---------------------------------------------------------------
  733.  
  734.   Purpose   : Truncate a string at Maxlen
  735.  
  736.   Example   : S1 := 'Hello Friends';
  737.               S2 := 'Hello Friends';
  738.               StrCut(S1,5);
  739.               StrCut(S2,100);
  740.  
  741.   Result    : S1 = 'Hello'
  742.               S2 = 'Hello Friends';
  743.  
  744.   Rating    : 72500/s
  745.  
  746.   ---------------------------------------------------------------
  747.   Procedure   StrDeTab(Var Dest: String;S: String;TabSize: Byte);
  748.   ---------------------------------------------------------------
  749.  
  750.   Purpose   : Replace all Tab characters with <tabsize> spaces.
  751.  
  752.   Example   : StrDeTab(S,'Hello'#9'Friends',5);
  753.  
  754.   Result    : S = 'Hello     Friends'
  755.  
  756.   Rating    : 19000/s
  757.  
  758.   ---------------------------------------------------------------
  759.   Procedure   StrFill(Var S: String;Fill: String;Count, MaxLen: Byte);
  760.   ---------------------------------------------------------------
  761.  
  762.   Purpose   : Fill a string with <count> <another string>
  763.  
  764.   Example   : StrFill(S,'Hello ',5,100);
  765.  
  766.   Result    : S = 'Hello Hello Hello Hello Hello '
  767.  
  768.   Rating    :  6200/s
  769.  
  770.   ---------------------------------------------------------------
  771.   Procedure   StrJC(Var S: String;MaxLen: Byte);
  772.   ---------------------------------------------------------------
  773.  
  774.   Purpose   : Pads a string left and right side with spaces.
  775.  
  776.   Example   : S := 'Hello';
  777.               StrJC(S,10);
  778.  
  779.   Result    : S = '   Hello  ';
  780.  
  781.   Rating    : 39700/s
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.                                                    Page 12
  795.  
  796.   ---------------------------------------------------------------
  797.   Procedure   StrJL(Var S: String;MaxLen: Byte);
  798.   ---------------------------------------------------------------
  799.  
  800.   Purpose   : Pads a string to left with spaces.
  801.  
  802.   Example   : S := 'Hello';
  803.               StrJL(S,10);
  804.  
  805.   Result    : S = '     Hello';
  806.  
  807.   Rating    : 38800/s
  808.  
  809.   ---------------------------------------------------------------
  810.   Procedure   StrJR(Var S: String;MaxLen: Byte);
  811.   ---------------------------------------------------------------
  812.  
  813.   Purpose   : Pads a string to rigth with spaces.
  814.  
  815.   Example   : S := 'Hello';
  816.               StrJR(S,10);
  817.  
  818.   Result    : S = 'Hello     '
  819.  
  820.   Rating    : 40000/s
  821.  
  822.   ---------------------------------------------------------------
  823.   function    StrLwr(S: String)                       :String;
  824.   ---------------------------------------------------------------
  825.  
  826.   Purpose   : Lowercase a string (international support).
  827.  
  828.   Example   : S := StrLwr('ABCDEFGHIJK');
  829.  
  830.   Result    : S = 'abcdefghijk'
  831.  
  832.   Rating    :  5900/s
  833.  
  834.   ---------------------------------------------------------------
  835.   Procedure   StrMove(Var Dest: String;S: String);
  836.   ---------------------------------------------------------------
  837.  
  838.   Purpose   : Moves a string into another.
  839.  
  840.   Equivalent: Dest := S;
  841.  
  842.   Example   : StrMove(Dest,S);
  843.  
  844.   Result    : Dest = S
  845.  
  846.   Rating    : 24900/s
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.                                                    Page 13
  861.  
  862.   ---------------------------------------------------------------
  863.   Procedure   StrOvr(Var Dest: String;S: String;Index: byte);
  864.   ---------------------------------------------------------------
  865.  
  866.   Purpose   : Overwrite a string with another.
  867.               Index should be in the range 1..Length(Dest) - Length(S)
  868.  
  869.   Example   : S := 'Hello Girl friends !';
  870.               StrOvr(S,'boys',7);
  871.  
  872.   Result    : S = 'Hello boys friends !'
  873.  
  874.   Rating    : 40700/s
  875.  
  876.   ---------------------------------------------------------------
  877.   Procedure   StrPeek(Var Dest: String;Var Source;MaxLen: Byte);
  878.   ---------------------------------------------------------------
  879.  
  880.   Purpose   : copy source from 1 to Maxlen to dest.
  881.               Dest[0] becomes maxlen.
  882.  
  883.   Equivalent: Dest := Copy(Source,1,Maxlen);
  884.               (if source is a string !).
  885.  
  886.   Example   : S := 'Hello friends';
  887.               StrPeek(Dest,S,5);
  888.  
  889.   Result    : Dest = 'Hello'
  890.  
  891.   Rating    : 39800/s
  892.  
  893.   ---------------------------------------------------------------
  894.   Procedure   StrPoke(Var Dest;Source: String);
  895.   ---------------------------------------------------------------
  896.  
  897.   Purpose   : moves source to dest without length byte.
  898.  
  899.   Example   : Var Dest: tByteArray;
  900.               S := 'Hello friends';
  901.               StrPoke(Dest,S);
  902.  
  903.   Result    : Dest[0] thru dest[12] = S[1] thru Dest[12]
  904.  
  905.   Rating    : 24900/s
  906.  
  907.   ---------------------------------------------------------------
  908.   Procedure   StrReTab(Var Dest: String;S: String;TabSize: Byte);
  909.   ---------------------------------------------------------------
  910.  
  911.   Purpose   : Replace <tabsize> spaces with #9 character.
  912.  
  913.   Example   : StrRetab(S1,'Hello     Friends',5);
  914.               StrRetab(S2,'Hello    Friends',2);
  915.               StrReTab(S3,'Hello     Friends',6);
  916.  
  917.   Result    : S1 = 'Hello'#9'Friends'
  918.               S2 = 'Hello'#9#9' Friends'
  919.               S3 = 'Hello'#9'     Friends'
  920.  
  921.   Rating    :  8500/s
  922.  
  923.  
  924.  
  925.  
  926.                                                    Page 14
  927.  
  928.   ---------------------------------------------------------------
  929.   Procedure   StrRev(Var S: String);
  930.   ---------------------------------------------------------------
  931.  
  932.   Purpose   : Reverse a string.
  933.  
  934.   Example   : S := 'abcdefghijk';
  935.               StrRev(S);
  936.  
  937.   Result    : S = 'kjihgfedcba';
  938.  
  939.   Rating    : 41200/s
  940.  
  941.   ---------------------------------------------------------------
  942.   function    StrUpr(S: String)                       :String;
  943.   ---------------------------------------------------------------
  944.  
  945.   Purpose   : Upcase a string with international support.
  946.  
  947.   Example   : S := 'abczzzéèàùôûîâê';
  948.               S := StrUpr(S);
  949.  
  950.   Result    : S = 'ABCZZZÉEAUOUIAE'
  951.  
  952.   Rating    :  4500/s
  953.  
  954.   ---------------------------------------------------------------
  955.   Function    IsAscii (C: Char):Boolean;
  956.   ---------------------------------------------------------------
  957.  
  958.   Purpose   : Return true if C < #128
  959.  
  960.   Example   : B1 := IsAscii('û');
  961.               B2 := IsAscii('7');
  962.  
  963.   Result    : B1 = False
  964.               B2 = True
  965.  
  966.   Rating    :101200/s
  967.  
  968.   ---------------------------------------------------------------
  969.   Function    IsCntrl (C: Char):Boolean;
  970.   ---------------------------------------------------------------
  971.  
  972.   Purpose   : Return true if C is in [#0..#31,#127];
  973.  
  974.   Rating    : 79200/s
  975.  
  976.   ---------------------------------------------------------------
  977.   Function    IsGraph (C: Char):Boolean;
  978.   ---------------------------------------------------------------
  979.  
  980.   Purpose   : Return true if C is in [#33..#126]
  981.  
  982.   Rating    : 81000/s
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.                                                    Page 15
  993.  
  994.   ---------------------------------------------------------------
  995.   Function    IsPrint (C: Char):Boolean;
  996.   ---------------------------------------------------------------
  997.  
  998.   Purpose   : return true if C is in [#32..#126].
  999.  
  1000.   Rating    : 80800/s
  1001.  
  1002.   ---------------------------------------------------------------
  1003.   Function    IsSigned(C: Char):Boolean;
  1004.   ---------------------------------------------------------------
  1005.  
  1006.   Purpose   : return True if C is in ['0'..'9','+','-'].
  1007.  
  1008.   Rating    : 92800/s
  1009.  
  1010.   ---------------------------------------------------------------
  1011.   Function    IsSpace (C: Char):Boolean;
  1012.   ---------------------------------------------------------------
  1013.  
  1014.   Purpose   : return True if C is in [' ',#9..#13].
  1015.  
  1016.   Rating    : 76800/s
  1017.  
  1018.   ---------------------------------------------------------------
  1019.   Function    IsAlnum (C: Char):Boolean;
  1020.   ---------------------------------------------------------------
  1021.  
  1022.   Purpose   : Return True if C is in ['0'..'9','A'..'Z','a'..'z'].
  1023.  
  1024.   Rating    : 91400/s
  1025.  
  1026.   ---------------------------------------------------------------
  1027.   Function    IsAlpha (C: Char):Boolean;
  1028.   ---------------------------------------------------------------
  1029.  
  1030.   Purpose   : Return True if C is in ['A'..'Z','a'..'z'].
  1031.  
  1032.   Rating    : 88200/s
  1033.  
  1034.   ---------------------------------------------------------------
  1035.   Function    IsDigit (C: Char):Boolean;
  1036.   ---------------------------------------------------------------
  1037.  
  1038.   Purpose   : Return True if C is in ['0'..'9'].
  1039.  
  1040.   Rating    : 91200/s
  1041.  
  1042.   ---------------------------------------------------------------
  1043.   Function    IsDos   (C: Char):Boolean;
  1044.   ---------------------------------------------------------------
  1045.  
  1046.   Purpose   : Return True if C is in ['!','#'..'*','-','.','0'..':',
  1047.                                       '?'..'Z''\','^','{','}','~'].
  1048.  
  1049.   Rating    : 88400/s
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.                                                    Page 16
  1059.  
  1060.   ---------------------------------------------------------------
  1061.   Function    IsFile  (C: Char):Boolean;
  1062.   ---------------------------------------------------------------
  1063.  
  1064.   Purpose   : Return true if IsDos(C) And C is not in ['*',':','?'].
  1065.  
  1066.   Rating    : 89600/s
  1067.  
  1068.   ---------------------------------------------------------------
  1069.   Function    IsLower (C: Char):Boolean;
  1070.   ---------------------------------------------------------------
  1071.  
  1072.   Purpose   : Return True if C is in ['a'..'z'].
  1073.  
  1074.   Rating    : 88700/s
  1075.  
  1076.   ---------------------------------------------------------------
  1077.   Function    IsPunct (C: Char):Boolean;
  1078.   ---------------------------------------------------------------
  1079.  
  1080.   Purpose   : Return True if IsGraph(C) and Not(IsAlNum(C)).
  1081.  
  1082.   Rating    : 88600/s
  1083.  
  1084.   ---------------------------------------------------------------
  1085.   Function    IsReal  (C: Char):Boolean;
  1086.   ---------------------------------------------------------------
  1087.  
  1088.   Purpose   : Return true if ifSigned(C) or C is in ['.','e','E'].
  1089.  
  1090.   Rating    : 88400/s
  1091.  
  1092.   ---------------------------------------------------------------
  1093.   Function    IsUpper (C: Char):Boolean;
  1094.   ---------------------------------------------------------------
  1095.  
  1096.   Purpose   : Return True if C is in ['A'..'Z'].
  1097.  
  1098.   Rating    : 88700/s
  1099.  
  1100.   ---------------------------------------------------------------
  1101.   Function    IsHex   (C: Char):Boolean;
  1102.   ---------------------------------------------------------------
  1103.  
  1104.   Purpose   : Return True if C is in ['0'..'9','a'..'f','A'..'F'].
  1105.  
  1106.   Rating    : 86700/s
  1107.  
  1108.   ---------------------------------------------------------------
  1109.   Function    IsPath  (C: Char):Boolean;
  1110.   ---------------------------------------------------------------
  1111.  
  1112.   Purpose   : Return true if IsDos(C) or IsFile(C).
  1113.  
  1114.   Rating    : 73600/s
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.                                                    Page 17
  1125.  
  1126.   ---------------------------------------------------------------
  1127.   Function    Copy(S:String;Index,Count: Integer):string;
  1128.   ---------------------------------------------------------------
  1129.  
  1130.   Purpose   : Exact replacement of System.Copy proc.
  1131.  
  1132.   Rating    : 34400/s
  1133.  
  1134.   ---------------------------------------------------------------
  1135.   Procedure   Delete(Var S: String;Index,Count: Integer);
  1136.   ---------------------------------------------------------------
  1137.  
  1138.   Purpose   : Exact replacement of System.Delete proc.
  1139.  
  1140.   Rating    : 48000/s
  1141.  
  1142.   ---------------------------------------------------------------
  1143.   Function    Pos(Find,S: String):integer;
  1144.   ---------------------------------------------------------------
  1145.  
  1146.   Purpose   : Exact replacement of System.Pos proc.
  1147.  
  1148.   Rating    : 42800/s
  1149.  
  1150.   ---------------------------------------------------------------
  1151.   function    LoCase(C: Char)                         :Char;
  1152.   ---------------------------------------------------------------
  1153.  
  1154.   Purpose   : Lowercase C with international support.
  1155.  
  1156.   Rating    : 72000/s
  1157.  
  1158.   ---------------------------------------------------------------
  1159.   function    UpCase(C: Char)                         :Char;
  1160.   ---------------------------------------------------------------
  1161.  
  1162.   Purpose   : UpperCase C with international support.
  1163.  
  1164.   Rating    : 88400/s
  1165.  
  1166.   ---------------------------------------------------------------
  1167.   function    ATrim(S: String):string;
  1168.   ---------------------------------------------------------------
  1169.  
  1170.   Purpose   : Delete all rights and lefts spaces chars.
  1171.  
  1172.   Example   : S := '     Hello    guys     ';
  1173.               S := ATrim(S);
  1174.  
  1175.   Result    : S = 'Hello   guys'
  1176.  
  1177.   Rating    : 20900/s
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.                                                    Page 18
  1191.  
  1192.   ---------------------------------------------------------------
  1193.   function    LTrim(S: String):string;
  1194.   ---------------------------------------------------------------
  1195.  
  1196.   Purpose   : Delete all spaces characters found at left of S.
  1197.  
  1198.   Example   : S := '     Hello';
  1199.               S := LTrim(S);
  1200.  
  1201.   Result    : S = 'Hello'
  1202.  
  1203.   Rating    : 27300/s
  1204.  
  1205.   ---------------------------------------------------------------
  1206.   function    RTrim(S: String):string;
  1207.   ---------------------------------------------------------------
  1208.  
  1209.   Purpose   : Delete all spaces characters found at rigth oof S.
  1210.  
  1211.   Example   : S := 'Hello      ';
  1212.               S := RTrim(S);
  1213.  
  1214.   Result    : S = 'Hello'
  1215.  
  1216.   Rating    : 27700/s
  1217.  
  1218.   ---------------------------------------------------------------
  1219.   function    Replicate(Fill: Char;MaxLen:Byte):string;
  1220.   ---------------------------------------------------------------
  1221.  
  1222.   Purpose   : Create a string with <maxlen> chars repeated.
  1223.  
  1224.   Example   : S := Replicate('9',5);
  1225.  
  1226.   Result    : S = '99999';
  1227.  
  1228.   Rating    : 41600/s
  1229.  
  1230.   ---------------------------------------------------------------
  1231.   Function    Soundex(S: String):String;
  1232.   ---------------------------------------------------------------
  1233.  
  1234.   Purpose   : Return a 4 characters string representing the soundex
  1235.               code of S.
  1236.  
  1237.   Example   : S1 := Soundex('Hill');
  1238.               S2 := Soundex('EAL');
  1239.  
  1240.   Result    : S1 = 'H400'
  1241.               S2 = 'E400'
  1242.  
  1243.   Rating    : 26500/s
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.                                                    Page 19
  1257.  
  1258.   ---------------------------------------------------------------
  1259.   Function    WrdQty(S: String):Byte;
  1260.   ---------------------------------------------------------------
  1261.  
  1262.   Purpose   : Return the word count of S.
  1263.  
  1264.   Example   : Qt1 := WrdQty('Hello friends');
  1265.               Qt2 := WrdQty('');
  1266.               Qt3 := WrdQty('Hello friends , how are you today ?');
  1267.  
  1268.   Result    : Qt1 = 2;
  1269.               Qt2 = 0;
  1270.               Qt3 = 8
  1271.  
  1272.   Rating    : 32400/s
  1273.  
  1274.   ---------------------------------------------------------------
  1275.   function    HEXStrToLong(Str:string):longint;
  1276.   ---------------------------------------------------------------
  1277.  
  1278.   Purpose   : Return the longint value of Hex string Str.
  1279.  
  1280.   Example   : L := HexStrToLong('$000afffe');
  1281.   Result    : L := 720894
  1282.  
  1283.   Rating    : 24400/s
  1284.  
  1285.   ---------------------------------------------------------------
  1286.   function    LongHex(L : LongInt) : string;
  1287.   ---------------------------------------------------------------
  1288.  
  1289.   Purpose   : return an hex string representing a longint.
  1290.  
  1291.   Example   : S := LongHex(720894);
  1292.  
  1293.   Result    : S = '$000AFFFE'
  1294.  
  1295.   Rating    : 26800/s
  1296.  
  1297.   ---------------------------------------------------------------
  1298.   function    LongBin(L : LongInt) : string;
  1299.   ---------------------------------------------------------------
  1300.  
  1301.   Purpose   : Return a binary string representing a longint.
  1302.  
  1303.   Example   : S := LongBin(10);
  1304.  
  1305.   Result    : S = '0000000000001010'
  1306.  
  1307.   Rating    :   873/s
  1308.  
  1309.   ---------------------------------------------------------------
  1310.   function    LongOctal(L : LongInt) : string;
  1311.   ---------------------------------------------------------------
  1312.  
  1313.   Purpose   : Return an octal string representing a longint.
  1314.  
  1315.   Example   : S := LongOctal(500);
  1316.  
  1317.   Result    : S = '000000000764'
  1318.  
  1319.   Rating    : 15400/s
  1320.  
  1321.  
  1322.                                                    Page 20
  1323.  
  1324.   ---------------------------------------------------------------
  1325.   function    MotHex(W : Word) : string;
  1326.   ---------------------------------------------------------------
  1327.  
  1328.   Purpose   : return an hex string representing a word.
  1329.  
  1330.   Example   : S := MotHex(4096);
  1331.  
  1332.   Result    : S = '$1000'
  1333.  
  1334.   Rating    : 40900/s
  1335.  
  1336.   ---------------------------------------------------------------
  1337.   function    MotBin(W : Word) : string;
  1338.   ---------------------------------------------------------------
  1339.  
  1340.   Purpose   : Return a binary string representing a word.
  1341.  
  1342.   Example   : S := MotBin(10);
  1343.  
  1344.   Result    : S = '0000000000001010'
  1345.  
  1346.   Rating    : 16000/s
  1347.  
  1348.   ---------------------------------------------------------------
  1349.   function    MotOctal(W : Word) : string;
  1350.   ---------------------------------------------------------------
  1351.  
  1352.   Purpose   : Return an octal strig representing a word value.
  1353.  
  1354.   Example   : S := MotOctal(65000);
  1355.  
  1356.   Result    : S = '176750'
  1357.  
  1358.   Rating    : 27600/s
  1359.  
  1360.   ---------------------------------------------------------------
  1361.   function    OctetHex(B : Byte) : string;
  1362.   ---------------------------------------------------------------
  1363.  
  1364.   Purpose   : Return a hexa string representing a byte value.
  1365.  
  1366.   Example   : S := OctetHex(128);
  1367.  
  1368.   Result    : S = '80'
  1369.  
  1370.   Rating    : 63500/s
  1371.  
  1372.   ---------------------------------------------------------------
  1373.   function    OctetBin(B : Byte) : string;
  1374.   ---------------------------------------------------------------
  1375.  
  1376.   Purpose   : Return a binary string representing a byte value.
  1377.  
  1378.   Example   : S := OctetBin(100);
  1379.  
  1380.   Result    : S = '01100100'
  1381.  
  1382.   Rating    : 31500/s
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.                                                    Page 21
  1389.  
  1390.   ---------------------------------------------------------------
  1391.   function    OctetOctal(B : Byte) : string;
  1392.   ---------------------------------------------------------------
  1393.  
  1394.   Purpose   : Return an octal string representing a byte value.
  1395.  
  1396.   Example   : S := OctetOctal(125);
  1397.  
  1398.   Result    : S = '175'
  1399.  
  1400.   Rating    : 41600/s
  1401.  
  1402.   ---------------------------------------------------------------
  1403.   function    PtrHex(P : Pointer) : string;
  1404.   ---------------------------------------------------------------
  1405.  
  1406.   Purpose   : Return an hexa string representing a pointer value.
  1407.  
  1408.   Example   : S := PtrHex(Ptr($b800,0));
  1409.  
  1410.   Result    : S = 'B800:0000'
  1411.  
  1412.   Rating    : 23300/s
  1413.  
  1414.   ---------------------------------------------------------------
  1415.   function    StrToReal(Str:string):Real;
  1416.   ---------------------------------------------------------------
  1417.  
  1418.   Purpose   : Return a real from a string.
  1419.  
  1420.   Example   : R1 := StrToReal('3.141592');
  1421.               R2 := StrToReal('ab112.22');
  1422.  
  1423.   Result    : R1 = 3.141592
  1424.               R2 = 0.0
  1425.  
  1426.   ---------------------------------------------------------------
  1427.   function    StrToLong(Str:string):Longint;
  1428.   ---------------------------------------------------------------
  1429.  
  1430.   Purpose   : Return a longint from a string.
  1431.  
  1432.   Example   : l1 := StrToLong('123456');
  1433.               L2 := StrToLong('abcedf');
  1434.  
  1435.   Result    : L1 = 123456
  1436.               L2 = 0
  1437.  
  1438.   Rating    :  7300/s
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.                                                    Page 22
  1455.  
  1456.   ---------------------------------------------------------------
  1457.   function    ValidInt(Str:string):boolean;
  1458.   ---------------------------------------------------------------
  1459.  
  1460.   Purpose   : Return true if Str is a Valid string for representing an integer.
  1461.  
  1462.   Example   : B1 := ValidInt('125');
  1463.               B2 := ValidInt('12r');
  1464.               B3 := ValidInt('12.00');
  1465.  
  1466.   Result    : B1 = True
  1467.               B2 = False
  1468.               B3 = False
  1469.  
  1470.   Rating    : 11600/s
  1471.  
  1472.   ---------------------------------------------------------------
  1473.   function    ValidHInt(Str:string):boolean;
  1474.   ---------------------------------------------------------------
  1475.  
  1476.   Purpose   : same as previous for hexa strings.
  1477.  
  1478.   Rating    : 13600/s
  1479.  
  1480.   ---------------------------------------------------------------
  1481.   function    ValidReal(Str:string):boolean;
  1482.   ---------------------------------------------------------------
  1483.  
  1484.   Purpose   : Same as previous for real
  1485.  
  1486.   Rating    :  1095/s
  1487.  
  1488.   ---------------------------------------------------------------
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.   3 - REFERENCES                                      Page 23
  1521.  
  1522.   ---------------------------------------------------------------
  1523.   function    StrL                    function    StrLF
  1524.   function    StrR                    function    StrRF
  1525.   function    StrRFD                  function    StrC
  1526.   function    StrCF                   function    StrCFD
  1527.   function    StrD                    function    StrDF
  1528.   function    StrDFD                  function    StrE
  1529.   function    StrEF                   function    StrEFD
  1530.   function    StrS                    function    StrSF
  1531.   function    StrSFD
  1532.  
  1533.   Procedure   ChrDel                  Procedure   ChrDelL
  1534.   Procedure   ChrDelR                 Procedure   ChrFill
  1535.   Procedure   ChrPadC                 procedure   ChrPadL
  1536.   Procedure   ChrPadR                 Procedure   ChrRepl
  1537.   Procedure   ChrReplI
  1538.  
  1539.   Procedure   StrCat                  Function    StrCmp
  1540.   Function    StrCmpI                 Procedure   StrCopy
  1541.   Procedure   StrCut                  Procedure   StrDeTab
  1542.   Procedure   StrFill                 Procedure   StrJC
  1543.   Procedure   StrJL                   Procedure   StrJR
  1544.   function    StrLwr                  Procedure   StrMove
  1545.   Procedure   StrOvr                  Procedure   StrPeek
  1546.   Procedure   StrPoke                 Procedure   StrReTab
  1547.   Procedure   StrRev                  function    StrUpr
  1548.  
  1549.   Function    IsAscii                 Function    IsCntrl
  1550.   Function    IsGraph                 Function    IsPrint
  1551.   Function    IsSigned                Function    IsSpace
  1552.   Function    IsAlnum                 Function    IsAlpha
  1553.   Function    IsDigit                 Function    IsDos
  1554.   Function    IsFile                  Function    IsLower
  1555.   Function    IsPunct                 Function    IsReal
  1556.   Function    IsUpper                 Function    IsHex
  1557.   Function    IsPath
  1558.  
  1559.   Function    Copy                    Procedure   Delete
  1560.   Function    Pos                     function    LoCase
  1561.   function    UpCase                  function    ATrim
  1562.   function    LTrim                   function    RTrim
  1563.   function    Replicate               Function    Soundex
  1564.   Function    WrdQty                  function    HEXStrToLong
  1565.   function    LongHex                 function    LongBin
  1566.   function    LongOctal               function    MotHex
  1567.   function    MotBin                  function    MotOctal
  1568.   function    OctetHex                function    OctetBin
  1569.   function    OctetOctal              function    PtrHex
  1570.   function    StrToReal               function    StrToLong
  1571.   function    ValidInt                function    ValidHInt
  1572.   function    ValidReal
  1573.  
  1574.   ---------------------------------------------------------------
  1575.  
  1576.  
  1577.  
  1578.          ----------------end-of-author's-documentation---------------
  1579.  
  1580.                          Software Library Information:
  1581.  
  1582.                     This disk copy provided as a service of
  1583.  
  1584.                            Public (software) Library
  1585.  
  1586.          We are not the authors of this program, nor are we associated
  1587.          with the author in any way other than as a distributor of the
  1588.          program in accordance with the author's terms of distribution.
  1589.  
  1590.          Please direct shareware payments and specific questions about
  1591.          this program to the author of the program, whose name appears
  1592.          elsewhere in  this documentation. If you have trouble getting
  1593.          in touch with the author,  we will do whatever we can to help
  1594.          you with your questions. All programs have been tested and do
  1595.          run.  To report problems,  please use the form that is in the
  1596.          file PROBLEM.DOC on many of our disks or in other written for-
  1597.          mat with screen printouts, if possible.  PsL cannot debug pro-
  1598.          programs over the telephone, though we can answer questions.
  1599.  
  1600.          Disks in the PsL are updated  monthly,  so if you did not get
  1601.          this disk directly from the PsL, you should be aware that the
  1602.          files in this set may no longer be the current versions. Also,
  1603.          if you got this disk from another vendor and are having prob-
  1604.          lems,  be aware that  some files may have become corrupted or
  1605.          lost by that vendor. Get a current, working disk from PsL.
  1606.  
  1607.          For a copy of the latest monthly software library newsletter
  1608.          and a list of the 4,000+ disks in the library, call or write
  1609.  
  1610.                            Public (software) Library
  1611.                                  P.O.Box 35705
  1612.                             Houston, TX 77235-5705
  1613.  
  1614.                                  Orders only:
  1615.                                 1-800-2424-PSL
  1616.                               MC/Visa/AmEx/Discover
  1617.  
  1618.                           Outside of U.S. or in Texas
  1619.                           or for general information,
  1620.                               Call 1-713-524-6394                 
  1621.